#ifndef _SEP_TYPEDEF_
#define _SEP_TYPEDEF_

#include "CPxTime2a.h"

typedef union _SEP { //继电保护装置的单个事件 
	struct {
		#if (IEC_ENDIAN  == IEC_LITTLE_ENDIAN)
			uint8_t ES  : 2 ; //ES（2bit） ＝0＝3：不确定 ＝1： OFF（开）＝2： ON（合）
			uint8_t RES : 1 ; //RES（3bit）：保留
			uint8_t EI  : 1 ; //EI（1bit）＝ 0：动作时间有效;＝1：动作时间无效
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
		#else
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t EI  : 1 ; //EI（1bit）＝ 0：动作时间有效;＝1：动作时间无效
			uint8_t RES : 1 ; //RES（3bit）：保留
			uint8_t ES  : 2 ; //ES（2bit） ＝0＝3：不确定 ＝1： OFF（开）＝2： ON（合）
		#endif
	}part;

	uint8_t val;
}SEP_t;


// M_EP_TA_1 
typedef struct SEP24T {
    SEP_t SEP ;
    struct CP16Time2a acttime ;
    struct CP24Time2a time ;
}
SEP24T_t ;


// M_EP_TD_1 
typedef struct SEP56T {
    SEP_t SEP ;
    struct CP16Time2a acttime ;
    struct CP56Time2a time ;
}
SEP56T_t ;

#endif
